/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package desu.nya.DAO;

import desu.db.HibernateUtil;
import desu.nya.TypeEd;
import java.sql.SQLException;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Session;

/**
 *
 * @author Fess
 */
public class TypeEdIMPL implements TypeEdDAO{
    
    @Override
    public void addTypeEd(TypeEd typeEd) throws SQLException {
        Session session=null;
        try{
            session=HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            session.save(typeEd);
            session.getTransaction().commit();
        }
        catch(Exception ex){
            System.err.println( "Ошибка при вставке типа издания");
        }
        finally{
            if(session!=null&&session.isOpen())
                session.close();
        }  
    }

    @Override
    public TypeEd getTypeEdByID(int id) throws SQLException {
        Session session=null;
        TypeEd typeEd=null;
        try{
            session=HibernateUtil.getSessionFactory().openSession();
            typeEd=(TypeEd)session.load(TypeEd.class, id);
        }
        catch(Exception ex){
            System.err.println( "Ошибка при поиске типа издания");
        }
        finally{
            if(session!=null&&session.isOpen())
                session.close();
        }  
        return typeEd;
    }

    @Override
    public void updateTypeEd(int typeEd_id, TypeEd typeEd) throws SQLException {
        Session session=null;
        try{
            session=HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            session.update(typeEd);
            session.getTransaction().commit();
        }
        catch(Exception ex){
            System.err.println( "Ошибка при обновления типа издания");
        }
        finally{
            if(session!=null&&session.isOpen())
                session.close();
        }  
    }

    @Override
    public List<TypeEd> getAllTypeEd() throws SQLException {
        Session session=null;
        List<TypeEd> list=null;
        try{
            session=HibernateUtil.getSessionFactory().openSession();
            list=(List<TypeEd>)session.createCriteria(TypeEd.class).list();
            session.getTransaction().commit();
        }
        catch(Exception ex){
            System.err.println(  "Ошибка при получении списка типов изданий");
        }
        finally{
            if(session!=null&&session.isOpen())
                session.close();
        }  
        return list;
    }

    @Override
    public void deleteTypeEd(TypeEd typeEd) throws SQLException {
        Session session=null;
        try{
            session=HibernateUtil.getSessionFactory().openSession();
            session.delete(typeEd);
            session.getTransaction().commit();
        }
        catch(Exception ex){
            System.err.println( "Ошибка при получении списка типов изданий");
        }
        finally{
            if(session!=null&&session.isOpen())
                session.close();
        }  
    }
    
    
}
